package com.atguigu.filter;

import jakarta.servlet.*;

import java.io.IOException;

/*
* 日志过滤器，记录日志的请求历史，将日志打印到控制台上
* 1.实现一个filter接口
* 2.重写过滤方法
* 3.配置过滤器
*    传统的web.xml
*    注解
* */
public class LoggingFilter implements Filter {


/** 过滤请求和过滤的方法
* 1.请求到达目标资源之前的，先经过该方法
* 2.该方法有能力控制请求是否继续向后到达目标资源，可以在该方法内直接向客户端做响应处理
* 3.请求到达目标资源后，响应之前还会经过该方法
*
* */
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

   /*     * 请求到达目标资源之前的功能代码
        *    判断是否登陆
        *     校验权限是否满足
        *       ...
        * 2.放行代码
        *
        * 3.响应之前 HttpServletResponse 转化为响应报文之前的功能代码
        * */
        System.out.println("loggingFilter before doFilter");

        //放行
        filterChain.doFilter(servletRequest,servletResponse);
        System.out.println("loggingFilter after doFilter");
    }
}
